package com.idc.excel.dsw;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class RulesUtil {

	private static Set<String> zxsSet = new HashSet<>(Arrays.asList("北京", "天津", "上海", "重庆"));

	public static void fixData(DswData dswData) {
		// 如果包含地市，一定包含省份
		if ("是".equals(dswData.getIsContainCityKey())) {
			dswData.setIsContainProKey("是");
		}
		// 逻辑口检查和非业务口检查只有有一个是，前面项置为\
		if (dswData.isLogicNotBusCheck()) {
			setToNull(dswData);
		}
		dswData.reloadCompliance();
		if (!dswData.isCompliance()) {
			if (dswData.getDeviceName().endsWith("163") && dswData.getDeviceIp().startsWith("202.97.3")) {
				dswData.setIsCompliance("合规");
				dswData.setRemark("骨干设备下联端口");
			}
			if (zxsSet.contains(dswData.getProvinceName())) {
				dswData.setIsContainProKey("\\");
				dswData.setIsContainCityKey("\\");
				dswData.setRemark("直辖市下联端口暂不核查省份地市关键字");
				dswData.reloadCompliance();
				if (!dswData.isCompliance()) {
					if ("是".equals(dswData.getBusPortCheck()) && dswData.isBusUserCompliance()) {
						dswData.setIsCompliance("合规");
						dswData.setRemark("直辖市下联端口暂不核查省份地市关键字，下联平台端口，无法获取对端设备端口信息，暂定合规");
					} else if ("是".equals(dswData.getUserPortCheck()) && dswData.isBusUserCompliance()) {
						dswData.setIsCompliance("合规");
						dswData.setRemark("直辖市下联端口暂不核查省份地市关键字，下联用户端口，无法获取对端设备端口信息，暂定合规");
					}
				}
			} else {
				if ("是".equals(dswData.getBusPortCheck()) && dswData.isBusUserCompliance()) {
					dswData.setIsCompliance("合规");
					dswData.setRemark("下联平台端口，无法获取对端设备端口信息，暂定合规");
				} else if ("是".equals(dswData.getUserPortCheck()) && dswData.isBusUserCompliance()) {
					dswData.setIsCompliance("合规");
					dswData.setRemark("下联用户端口，无法获取对端设备端口信息，暂定合规");
				}
			}
		}
	}

	private static void setToNull(DswData dswData) {
		dswData.setIsUpDownLink("\\");
		dswData.setIsContainProKey("\\");
		dswData.setIsContainCityKey("\\");
		dswData.setIsContainNetBusKey("\\");
		dswData.setIsContainDeviceKey("\\");
		dswData.setIsContainBandwidthKey("\\");
		dswData.setIsContainPortKey("\\");
	}
}
